/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2022-2022. All rights reserved.
 * Description: 性能评估器相关头文件
 * Author: qingjicheng
 * Create: 2022-8-1
 */

#ifndef COMM_TIME_EVALUATOR_H
#define COMM_TIME_EVALUATOR_H

#include <unordered_map>
#include "graph_common_def.h"
#include "connected_graph_builder.h"
#include "connected_graph.h"
#include "connected_graph_analyzer.h"

namespace HcclEvaluator {
class CommTimeEvaluator {
public:
    explicit CommTimeEvaluator();
    virtual ~CommTimeEvaluator();
    HcclResult EvaluateTimeCostRoughly(HcclOpInfo* op, HcclTopology* topo, float* cost);
private:
    std::unordered_map<s32, ConnectedGraph> tagGraphMap_;
    ConnectedGraphBuilder graphBuilder_;
    ConnectedGraphAnalyzer graphAnalyzer_;
};
}
#endif